package dao

import (
	"app/internal/channel"
	"app/util"
)

func (d *Dao) User(obj interface{}) error {

	msg, err := util.ConvertMsg(obj)
	if err != nil {
		return err
	}

	return d.PushMsg(channel.UserChannel, msg)
}

func (d *Dao) Register(obj interface{}) error {

	msg, err := util.ConvertMsg(obj)
	if err != nil {
		return err
	}

	return d.PushMsg(channel.RegisterChannel, msg)
}

func (d *Dao) Heart(obj interface{}) error {

	msg, err := util.ConvertMsg(obj)
	if err != nil {
		return err
	}

	return d.PushMsg(channel.HeartChannel, msg)
}

func (d *Dao) License(obj interface{}) error {

	msg, err := util.ConvertMsg(obj)
	if err != nil {
		return err
	}

	return d.PushMsg(channel.LicenseChannel, msg)
}

func (d *Dao) SyncLicense(obj interface{}) error {

	msg, err := util.ConvertMsg(obj)
	if err != nil {
		return err
	}

	return d.PushMsg(channel.SyncLicenseChannel, msg)
}

func (d *Dao) PushMsg(key string, msg []byte) error {

	err := d.messagechannel.Push(key, msg)
	if err != nil {
		util.Error("push msg faild %s", err)
		return err
	}
	return nil
}
